Hi,
I just tried Coldest today (compiled from svn on linux) and was rather positively surprised about it. I especially liked how most of the graphics didn't actually make my eyes bleed (apart from the hit effect stuff which is rather horrible) and how you've resisted xml/json whatever in favor of simple plain text config files (e.g. maps seem to be easy and nice to create apart from the procedural trees for which I would suggest a similar placement method as grass has).
It's not bad for programmer art.
There are a few placeholder bits still and I'm planning to replace the explosion stuff because it's messed up right now, and even if I fix it I think there will be potential problems that can't be easily fixed. I'm probably going to make it more particle based which should look and work better.
I'm not a huge fan of xml for a lot of the stuff people use it for either. It's kind of ugly to read and write for simple things like config files and I count my custom file format as one of the best decisions I've made in this project. It's flexible and simple and since I came up with it everything makes sense to me.
The GUI stuff does use XML, but that was done more as a learning experience.
The trees can actually be edited in-engine because I agree that editing by hand would be torture, but the editor component is still pretty immature. I can't place trees randomly like the grass because a lot of the trees generated are pretty ugly so they need a little human intervention to choose random seeds that look good.
Now I'd like to ask some questions.
1. Is there an IRC channel for this project?
I feel it's easier to discuss stuff and ask quick questions in real time. Also, if the project should have more than one developer, a CIA.vc IRC bot announcing all commits is pretty much de-facto standard for open-source projects.
I had one for a while, but at the time I had trouble generating interest so it never got used and I'm pretty sure it's gone. Perfectly happy to have another one though.
2. Is the engine completely home-brew or is it based on something?
My quick initial analysis suggests it's original. It seems nicely not-ancient (using VBOs, FBOs, shaders etc. contrary to most open-source games sticking to OpenGL 1.4 and fixed function pipeline).
Completely from scratch. Honestly, most of the new stuff that I used is just simpler than doing things the old way, so it made sense. Sure, it will keep it from running on some old hardware, but frankly I don't think it will perform well enough on that stuff anyway, so it's not worth worrying about.
3. Are the bots completely brain dead and invulnerable?
As it seemed when I tested.
Pretty much, although you should be able to kill them. It's entirely possible there's a bug with that though. The bots were mostly for the sake of load testing the engine so at this point they're pretty much useless for anything but target practice.
4. If I would construct a CMake-based build system, what are its chances of getting included or even replacing the current one?
I've grown rather fond of this popular cross-platform build tool that generates (among other things) colorful makefiles and most importantly keeps the source tree clean of the object code pollution and other compilation garbage. I actually almost completed this for my own use already, but encountered a small obstacle at the end when I realized I cannot simply glob sources with wildcards (*.cpp) as the server and client files are in the same directory.
I've actually considered switching to CMake because I've used it in another project and I liked it, but right now the same makefile is used for the client, server, and master server because they all share code. I don't know CMake well enough to know how to do that cleanly, but if you can figure it out I'd be happy to switch. It's been on my todo list for a while anyway.
Oh, I could tell you that I consider myself quite good C++ programmer with experience on OpenGL usage also. If I can find the time, I could consider some contributing.
Certainly happy to have any help. I should warn you that some of this code dates back to my college days and is pretty awful. I'm trying to clean it up as I go, but one of the big problems with it is that a lot of code is tightly coupled so fixing one piece requires a rewrite of 3 other major parts.